home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / Reich-o-Matic / Reich-o-Matic.nib (.txt) < prev    next >
Encoding:
NeXT TypedStream Data  |  1992-08-03  |  12.1 KB  |  219 lines

  1. typedstream
  2. StreamTable
  3.     HashTable
  4. Object
  5. [20c]
  6. typedstream
  7. [662c]
  8. typedstream
  9.     HashTable
  10. Object
  11. FirstResponder
  12. HeaderClass
  13. %%%%i@@
  14. firstnib
  15. checkSpelling:
  16. alignSelCenter:
  17.     unscript:
  18. pasteFont:
  19. runPageLayout:
  20. superscript:
  21. copyRuler:
  22.     copyFont:
  23. selectAll:
  24. pasteRuler:
  25. toggleRuler:
  26. showGuessPanel:
  27. alignSelLeft:
  28. paste:
  29. performClose:
  30. arrangeInFront:
  31. subscript:
  32. copy:
  33. alignSelRight:
  34. delete:
  35. orderFrontColorPanel:
  36. underline:
  37. performMiniaturize:
  38. Reicher
  39. genericobject_nib
  40. setPhasing:
  41. setInterlock:
  42. setPulsing:
  43. StartAndStop:
  44.     setCanon:
  45. [11564c]
  46. typedstream
  47.     HashTable
  48. Object
  49. NibData
  50. @@@@s
  51. Storage
  52. {*@@}
  53.     [42{*@@}]
  54. File's Owner
  55. CustomObject
  56. Application
  57. MainMenu
  58. MenuTemplate
  59. *@*@ccc
  60. Reich-o-Matic
  61. Matrix
  62. Control
  63.     Responder
  64. @:@iiii
  65. MenuCell
  66. ButtonCell
  67. ActionCell
  68. Info...
  69.     Helvetica
  70. ff@@#::s
  71. MenuItem
  72. ReichWindow
  73. WindowTemplate
  74. iiii***@s@
  75. Window
  76. Pulsing
  77. Times-Italic
  78. NXImage
  79. NXradio
  80. NXradioH
  81. Canon
  82. Phasing
  83.     Interlock
  84. Radio
  85. Button
  86. Sounds!
  87. NO MORE!
  88. LianA
  89. LianB
  90. LianC
  91. LianD
  92. ReicherInstance
  93. Reicher
  94. TheRealInfo
  95. well what do you know
  96. Panel
  97. [15@]
  98.     TextField
  99. TextFieldCell
  100. Reich-o-matic
  101. from Brad Garton
  102. #does this have any special meaning?
  103. Times-Roman
  104. version 1.0
  105. Helvetica-Oblique    
  106. Ueo 230 ;slk  [wp q;kof  o  'dfklj qor v9 lk K (lku amtnbuw  v ls kvh   iw o v   9 ) i
  107. Courier
  108. LianE
  109. LianF
  110. Field2
  111. Field
  112. Field1
  113. Field3
  114. Field4"
  115. Field5%
  116. Field6(
  117. Field7+
  118. Field8.
  119. Field91
  120. Field104
  121. Field119
  122. LiansPicture
  123. Lian Garton drew this picture
  124. TRUTHwindow
  125. TRUTH
  126. ScrollView
  127. ClipView
  128. ciifffcfffs
  129. [2911c]{\rtf0\ansi{\fonttbl\f0\fnil Times-Roman;\f1\fswiss Helvetica;}
  130. \margl40
  131. \margr40
  132. {\colortbl\red0\green0\blue0;}
  133. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ul0\fs32\fc0 I carried a camp chair over to the cot where the younger children were.  Then I sat there, leaning forward, to watch them sleep.\
  134.     A random tumble of heads and dangled limbs.  In those soft warm faces was a quality of trust so absolute and pure that I did not want to think it might be misplaced.  There must be something, somewhere, large and grand and redoubtable enough to justify this shining reliance and implicit belief.  A feeling of desperate piety swept over me.  It was cosmic in nature, full of yearnings and reachings.  It spoke of vast distances, awesome but subtle forces.  These sleeping children were like figures in an ad for the Rosicrucians, drawing a powerful beam of light from somewhere off the page.  Steffie turned slightly, then muttered something in her sleep.  It seemed important that I know what it was.  In my current state, bearing the death impression of the Nyodene cloud, I was ready to search anywhere for signs and hints, intimations of odd comfort.  I pulled my chair up closer.  Her face in pouchy sleep might have been a structure designed solely to protect the eyes, those great large and apprehensive things, prone to color phases and a darting alertness, to a perception of distress in others.  I sat there watching her.  Moments later she spoke again.  Distinct syllables this time, not some dreamy murmur -- but a language not quite of this world.  I struggled to understand.  I was convinced she was saying something, fitting together units of stable meaning.  I watched her face, waited.  Ten minutes passed.  She uttered two clearly audible words, familiar and elusive at the same time, words that seemed to have a ritual meaning, part of a verbal or ecstatic chant.\
  135. \i Toyota Celica.
  136. \i0 \
  137.     A long moment passed before I realized that this was the name of an automobile.  The truth only amazed me more.  The utterance was beautiful and mysterious, gold-shot with looming wonder.  It was like the name of an ancient power in the sky, tablet-carved in cuneiform.  It made me feel that something hovered.  But how could this be?  A simple brand name, an ordinary car.  How could these near-nonsense words, murmured in a child's restless sleep, make me sense a meaning, a presence?  She was only repeating some TV voice.  Toyota Corolla, Toyota Celica, Toyota Cressida.  Supranational names, computer-generated, more or less universally pronounceable.  Part of every child's brain noise, the substatic regions too deep to probe.  Whatever its source, the utterance struck me with the impact of a moment of splendid transcendence.\
  138.     I depend on my children for that.\
  139.                     
  140. \i\fs24 -- excerpt from
  141. \b\i0  White Noise
  142. \b0\i  by Don DeLillo
  143. \i0\fs32 \
  144. NXCursor
  145. NXibeam
  146. Scroller
  147. _doScroller:
  148. @@@ffss
  149. ScrollingTextga
  150. ==============
  151. [4028c]{\rtf0\ansi{\fonttbl\f1\fswiss Helvetica;\f0\fnil Times-Roman;}
  152. \margl40
  153. \margr40
  154. {\colortbl\red0\green0\blue0;}
  155. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f1\b0\i0\ul0\fs24\fc0 \
  156. One day while listening to a recording of Steve Reich's piece 
  157. \f0\i Vermont Counterpoint
  158. \f1\i0 , I thought to myself: "Gosh darn!  I wonder if I could simulate this composition with a computer!"  At about this time I had also been playing with Perry Cook's 
  159. \i SlideFlute
  160. \i0  synthesis algorithm, which does an amazing job of modelling the physics of a flute.  
  161. \i Reich-o-Matic
  162. \i0  is the result of this happy conjunction of idea and algorithm.\
  163. The performance model in this version is somewhat crude, using only some simple probabilities and constrained randomness -- not many rules concerning the actual construction of the music or the playing of the flute are included.  But it does manage to produce some snazzy sounds, plus I had fun fooling around with the numbers to see what music would result.\
  164. I have included models of four different compositional techniques which Steve Reich has used in his music:\
  165. \b Pulsing
  166. \b0  -- This fades in nice, pulsing chords similar in spirit to the             woodwind/voice parts in 
  167. \f0\i Music for Eighteen Musicians
  168. \f1\i0 \
  169.             (my favorite Steve Reich piece, by the way...).\
  170. \b Canon
  171. \b0  -- This generates a constantly changing three-voice canon             (strict imitation).  It sort of reminds me of 
  172. \f0\i Tehillim
  173. \f1\i0 .\
  174. \b Phasing
  175. \b0  -- One of Steve Reich's early techniques was to have two\
  176.             (or more) performers play the same pattern of music, with\
  177.             one of the players speeding up relative to the other(s).  I\
  178.             think that this simulation manages to capture a Reich-like\
  179.             quality the best.\
  180. \b Interlock
  181. \b0  -- Small interlocking melody fragments are produced by this\
  182.             simulation, inspired by the original idea I had while listening\
  183.             to 
  184. \f0\i Vermont Counterpoint
  185. \f1\i0 .\
  186. To hear these, simply select the corresponding radio button and start (or re-start) the program by hitting the 
  187. \f0\b Sounds!
  188. \f1\b0  button.  Let them run for awhile -- they're sure to drive your friends, family and/or office mates crazy!\
  189. \b\i About the Slide Flute algorithm
  190. \b0\i0 \
  191. The flute sounds are produced in real time on the NeXT DSP chip using a physical model of flute acoustics realized with the NeXT MusicKit.  The technique used to model the flute is known as waveguide filtering, and was developed by Julius O. Smith and others at the Center for Computer Research in Music and Acoustics (CCRMA) at Stanford University.  Perry Cook (prc@ccrma.stanford.edu) is the author of this flute model.  Perry has written a number of other astounding waveguide models (
  192. \i TBone
  193. \i0 , 
  194. \i HosePlayer
  195. \i0 , etc.).  Many of these are available at various archive sites.\
  196. \b\i About the drawing
  197. \b0\i0 \
  198. My daughter, Lian Garton (age five), has become absolutely enraptured by the 
  199. \i Draw
  200. \i0  app.  There are days when she is logged onto the NeXT more than her father(!).  I asked Lian to draw a picture for 
  201. \i Reich-o-Matic
  202. \i0 , the drawing included here is the result.  She drew this while listening to the "phasing" version of 
  203. \i Reich-o-Matic
  204. \i0 .  The particular choice of flute pattern she heard had a fair number of key-clicks; Lian explained that this drawing has marbles and sticks clinking together because the music sounded that way.  She also drew in a highly rhythmic fashion.  As Don DeLillo puts it: "There are no amateurs in the world of children."\
  205. I hope you find this music enjoyable.  Each time you start it up, the patterns should be different (or at least until random(3) becomes tired).  If some obviously bad notes pop out, this is a result of the performance and flute models.  What fun!  Sometimes the embouchure or air flow will be set up slightly "off".  Hey, even James Galway and Ransom Wilson have bad days!\
  206. Brad Garton\
  207. Columbia University Music Department\
  208. brad@woof.music.columbia.edu\
  209. {i*@@@}
  210. [11{i*@@@}]
  211. hide:
  212. terminate:
  213. setPulsing:
  214.     setCanon:
  215. setPhasing:
  216. setInterlock:
  217. StartAndStop:
  218. makeKeyAndOrderFront:
  219.